Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Interfaces gráficas en Haskell (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com
Eventos en WxHaskell
Se organizan en clases.
Un widget que instancia de una clase evento significa que puede recibir eventos de esa clase.
Los manejadores de eventos pueden ser definidos en un atributo usando la función «on»:
11
paint :: (Paint w) => Event w (DC () -> Rect -> IO ())

Window es una instancia de Paint, nos permite definir nuestra propia rutina paint para todo tipo de ventanas (incluyendo botones y cajas de texto).

set f [on paint := drawObjects]

Monografias.com
Visión genérica. Diseño (Layout)
Administra el posicionamiento y dimensionamiento de los artilugios de un contenedor widget.
wxHaskell utiliza combinadores layout que permite un estilo más declarativo para especificar la disposiciónEl tipo de retorno de un combinador de layout es siempre Layout
Permite un control preciso del comportamiento cuando la ventana cambia de tamaño (o para evitar el cambio de tamaño)
Los tipos de combinadores de layout son: diseños (widgets, contenedores, pegamento, separadores) y transformadores (estiramiento, ampliar márgenes, alineación)
12

Monografias.com
Atributos y propiedades en WxHaskell
Los atributos se transforman en propiedades con(:=)
La función set asigna una lista de propiedades a un objeto

Prop (Button a) Prop (Button a)
/ /
set btn [text := “Parar”, on command := función]
| | | |
Attr String Event IO ()
(Button a) (Button a)
String (IO ())
13

Monografias.com
Aplicaciones importantes de WxHaskell
Dazzle: Editor gráfico para redes bayesianas. Desarrollado por la universidad de Utrecht.
Dazzle usa la librería Smile y algoritmos en C++.
Presenta datos estadísticos multidimensionales.
Última versión del 15 de octubre de 2005
14

Monografias.com
Aplicaciones importantes de WxHaskell
Simulador de colonias de hormigas. Usado en la resolución de pistas para la resolución de pistas.

La interfaz se desarrolló en un solo día. Ganaron el concurso ICFP Programming Contest 2003 y 2004

Usa fragmentos de código C para programar sobre wxWidgets.
15

Monografias.com
Ejemplo
main = start gui
gui :: IO ()
gui =
do f ? frame [text := "Example"]
lab ? label f [text := "Hello wxHaskell"]
ok button f [text := "Ok"]
can ? button f [text := "Cancel"]
set ok [on command := close f ]
set can [on command := set lab [text := "Goodbye?"]]
set f [layout := column 5 [floatCenter (widget lab)
,floatCenter $
row 5 [widget ok,widget can]]]
16

Monografias.com
Ap.Gui
Fue realizada por Pepe Gallardo, profesor de la universidad de Málaga.

Conserva la misma filosofía que wxHaskell y HToolkit

Usada en la docencia.

Trabaja sobre GHC

Programación más intuitiva.

No trabaja sobre winhugs

17

Monografias.com
Atributos
Cada uno de los atributos se separan por comas.

Las asignaciones de cada atributo se hace usando el operador =:
button [ text =: "Button" ] w

Se suprime el uso de la directiva get y set

Las rutinas se especifican igualmente con «on»:
b4 ? button [ text =: "Quit", on action =: quit

18

Monografias.com
Layout
El layout se declara de una forma más intuitiva

Para tener a un widget que aparezca con alineamiento horizontal de otro se declara de la siguiente forma:

w!:layout =: b1 <.< b2 <.< b3 <.< b4

Para tener a un widget que aparezca con alineamiento vertical de otro se declara de la siguiente forma:
w!:layout =: b1 ^.^ b2 ^.^ b3 ^.^ b4

Es posible combinar ambos alineamientos:
w!:layout =: b1 <.< b2 ^.^ b3 <.< b4

19

Monografias.com
Layout
Cada widget puede ser dimensionado de forma individual usando size:
c ? canvas [ size =: 400 400, bgColor =: white ] w

Cada widget tiene su propio contenedor, salvo la ventana:
w ? window [ title =: "window"]
; b1 ? button [ text =: "Button"
, bgColor =: blue] w

20

Monografias.com
Comparativa
21

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter